home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / nfs4.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  5KB  |  158 lines

  1. /*
  2.  *  include/linux/nfs4.h
  3.  *
  4.  *  NFSv4 protocol definitions.
  5.  *
  6.  *  Copyright (c) 2002 The Regents of the University of Michigan.
  7.  *  All rights reserved.
  8.  *
  9.  *  Kendrick Smith <kmsmith@umich.edu>
  10.  *  Andy Adamson   <andros@umich.edu>
  11.  */
  12.  
  13. #ifndef _LINUX_NFS4_H
  14. #define _LINUX_NFS4_H
  15.  
  16. #include <linux/types.h>
  17.  
  18. #define NFS4_BITMAP_SIZE    2
  19. #define NFS4_VERIFIER_SIZE    8
  20. #define NFS4_STATEID_SIZE    16
  21. #define NFS4_FHSIZE        128
  22. #define NFS4_MAXPATHLEN        PATH_MAX
  23. #define NFS4_MAXNAMLEN        NAME_MAX
  24. #define NFS4_OPAQUE_LIMIT    1024
  25. #define NFS4_MAX_SESSIONID_LEN    16
  26.  
  27. #define NFS4_ACCESS_READ        0x0001
  28. #define NFS4_ACCESS_LOOKUP      0x0002
  29. #define NFS4_ACCESS_MODIFY      0x0004
  30. #define NFS4_ACCESS_EXTEND      0x0008
  31. #define NFS4_ACCESS_DELETE      0x0010
  32. #define NFS4_ACCESS_EXECUTE     0x0020
  33.  
  34. #define NFS4_FH_PERSISTENT        0x0000
  35. #define NFS4_FH_NOEXPIRE_WITH_OPEN    0x0001
  36. #define NFS4_FH_VOLATILE_ANY        0x0002
  37. #define NFS4_FH_VOL_MIGRATION        0x0004
  38. #define NFS4_FH_VOL_RENAME        0x0008
  39.  
  40. #define NFS4_OPEN_RESULT_CONFIRM 0x0002
  41. #define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004
  42.  
  43. #define NFS4_SHARE_ACCESS_MASK    0x000F
  44. #define NFS4_SHARE_ACCESS_READ    0x0001
  45. #define NFS4_SHARE_ACCESS_WRITE    0x0002
  46. #define NFS4_SHARE_ACCESS_BOTH    0x0003
  47. #define NFS4_SHARE_DENY_READ    0x0001
  48. #define NFS4_SHARE_DENY_WRITE    0x0002
  49. #define NFS4_SHARE_DENY_BOTH    0x0003
  50.  
  51. /* nfs41 */
  52. #define NFS4_SHARE_WANT_MASK        0xFF00
  53. #define NFS4_SHARE_WANT_NO_PREFERENCE    0x0000
  54. #define NFS4_SHARE_WANT_READ_DELEG    0x0100
  55. #define NFS4_SHARE_WANT_WRITE_DELEG    0x0200
  56. #define NFS4_SHARE_WANT_ANY_DELEG    0x0300
  57. #define NFS4_SHARE_WANT_NO_DELEG    0x0400
  58. #define NFS4_SHARE_WANT_CANCEL        0x0500
  59.  
  60. #define NFS4_SHARE_WHEN_MASK        0xF0000
  61. #define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL    0x10000
  62. #define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED        0x20000
  63.  
  64. #define NFS4_SET_TO_SERVER_TIME    0
  65. #define NFS4_SET_TO_CLIENT_TIME    1
  66.  
  67. #define NFS4_ACE_ACCESS_ALLOWED_ACE_TYPE 0
  68. #define NFS4_ACE_ACCESS_DENIED_ACE_TYPE  1
  69. #define NFS4_ACE_SYSTEM_AUDIT_ACE_TYPE   2
  70. #define NFS4_ACE_SYSTEM_ALARM_ACE_TYPE   3
  71.  
  72. #define ACL4_SUPPORT_ALLOW_ACL 0x01
  73. #define ACL4_SUPPORT_DENY_ACL  0x02
  74. #define ACL4_SUPPORT_AUDIT_ACL 0x04
  75. #define ACL4_SUPPORT_ALARM_ACL 0x08
  76.  
  77. #define NFS4_ACE_FILE_INHERIT_ACE             0x00000001
  78. #define NFS4_ACE_DIRECTORY_INHERIT_ACE        0x00000002
  79. #define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE     0x00000004
  80. #define NFS4_ACE_INHERIT_ONLY_ACE             0x00000008
  81. #define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG   0x00000010
  82. #define NFS4_ACE_FAILED_ACCESS_ACE_FLAG       0x00000020
  83. #define NFS4_ACE_IDENTIFIER_GROUP             0x00000040
  84.  
  85. #define NFS4_ACE_READ_DATA                    0x00000001
  86. #define NFS4_ACE_LIST_DIRECTORY               0x00000001
  87. #define NFS4_ACE_WRITE_DATA                   0x00000002
  88. #define NFS4_ACE_ADD_FILE                     0x00000002
  89. #define NFS4_ACE_APPEND_DATA                  0x00000004
  90. #define NFS4_ACE_ADD_SUBDIRECTORY             0x00000004
  91. #define NFS4_ACE_READ_NAMED_ATTRS             0x00000008
  92. #define NFS4_ACE_WRITE_NAMED_ATTRS            0x00000010
  93. #define NFS4_ACE_EXECUTE                      0x00000020
  94. #define NFS4_ACE_DELETE_CHILD                 0x00000040
  95. #define NFS4_ACE_READ_ATTRIBUTES              0x00000080
  96. #define NFS4_ACE_WRITE_ATTRIBUTES             0x00000100
  97. #define NFS4_ACE_DELETE                       0x00010000
  98. #define NFS4_ACE_READ_ACL                     0x00020000
  99. #define NFS4_ACE_WRITE_ACL                    0x00040000
  100. #define NFS4_ACE_WRITE_OWNER                  0x00080000
  101. #define NFS4_ACE_SYNCHRONIZE                  0x00100000
  102. #define NFS4_ACE_GENERIC_READ                 0x00120081
  103. #define NFS4_ACE_GENERIC_WRITE                0x00160106
  104. #define NFS4_ACE_GENERIC_EXECUTE              0x001200A0
  105. #define NFS4_ACE_MASK_ALL                     0x001F01FF
  106.  
  107. #define EXCHGID4_FLAG_SUPP_MOVED_REFER        0x00000001
  108. #define EXCHGID4_FLAG_SUPP_MOVED_MIGR        0x00000002
  109. #define EXCHGID4_FLAG_USE_NON_PNFS        0x00010000
  110. #define EXCHGID4_FLAG_USE_PNFS_MDS        0x00020000
  111. #define EXCHGID4_FLAG_USE_PNFS_DS        0x00040000
  112. #define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A    0x40000000
  113. #define EXCHGID4_FLAG_CONFIRMED_R        0x80000000
  114. /*
  115.  * Since the validity of these bits depends on whether
  116.  * they're set in the argument or response, have separate
  117.  * invalid flag masks for arg (_A) and resp (_R).
  118.  */
  119. #define EXCHGID4_FLAG_MASK_A            0x40070003
  120. #define EXCHGID4_FLAG_MASK_R            0x80070003
  121.  
  122. #define SEQ4_STATUS_CB_PATH_DOWN        0x00000001
  123. #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING    0x00000002
  124. #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED    0x00000004
  125. #define SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED    0x00000008
  126. #define SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED    0x00000010
  127. #define SEQ4_STATUS_ADMIN_STATE_REVOKED        0x00000020
  128. #define SEQ4_STATUS_RECALLABLE_STATE_REVOKED    0x00000040
  129. #define SEQ4_STATUS_LEASE_MOVED            0x00000080
  130. #define SEQ4_STATUS_RESTART_RECLAIM_NEEDED    0x00000100
  131.  
  132. #define NFS4_MAX_UINT64    (~(u64)0)
  133.  
  134. /* An NFS4 sessions server must support at least NFS4_MAX_OPS operations.
  135.  * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly.
  136.  */
  137. #define NFS4_MAX_OPS   8
  138.  
  139. /* Our NFS4 client back channel server only wants the cb_sequene and the
  140.  * actual operation per compound
  141.  */
  142. #define NFS4_MAX_BACK_CHANNEL_OPS 2
  143.  
  144. enum nfs4_acl_whotype {
  145.     NFS4_ACL_WHO_NAMED = 0,
  146.     NFS4_ACL_WHO_OWNER,
  147.     NFS4_ACL_WHO_GROUP,
  148.     NFS4_ACL_WHO_EVERYONE,
  149. };
  150.  
  151. #endif
  152.  
  153. /*
  154.  * Local variables:
  155.  *  c-basic-offset: 8
  156.  * End:
  157.  */
  158.